package Soligee.view;

import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeAlterarImplements;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeBuscarImplements;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeRemoverImplements;
import Soligee.decorador.DecoradorInicializaCombos;
import Soligee.decorador.PaginacaoListaCincoEmCinco;
import Soligee.decorador.PaginacaoListaDezEmDez;
import Soligee.decorador.ValidaCamposObrigatorios;
import Soligee.model.vo.cadastros.EnderecoVO;
import Soligee.model.vo.cadastros.FornecedorVO;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlCommandLink;
import com.icesoft.faces.component.ext.HtmlDataTable;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlOutputLabel;
import com.icesoft.faces.component.ext.HtmlOutputText;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectedData;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectionItems;
import com.icesoft.faces.component.jsfcl.data.DefaultTableDataModel;
import com.icesoft.faces.component.jsfcl.data.PopupBean;
import com.icesoft.faces.component.jsfcl.data.SelectInputDateBean;
import com.icesoft.faces.component.panelpopup.PanelPopup;
import com.icesoft.faces.component.paneltabset.PanelTabSet;
import com.icesoft.faces.component.selectinputdate.SelectInputDate;
import com.icesoft.faces.component.selectinputtext.SelectInputText;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

public class BuscarFornecedor extends AbstractPageBean {

   private int __placeholder;
   private boolean controle;
   private FornecedorVO fornecedor;
   private EnderecoVO endereco;
   private List<FornecedorVO> listaDeFornecedores = new ArrayList();  //lista para preencher a tabela
   private DefaultSelectionItems item; //item do autocomplete
   private int controlaSaida = 0;
   private static PaginacaoListaDezEmDez paginacaoBusca;
   private ValidaCamposObrigatorios valida = new ValidaCamposObrigatorios();

    public static PaginacaoListaDezEmDez getPaginacaoBusca() {
        return paginacaoBusca;
    }

    public static void setPaginacaoBusca(PaginacaoListaDezEmDez paginacaoBusca) {
        BuscarFornecedor.paginacaoBusca = paginacaoBusca;
    }

    
   
   // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">

   /**
    * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
    * This method is automatically generated, so any user-specified code inserted
    * here is subject to being replaced.</p>
    */
   private void _init() throws Exception {
   }
   private SelectInputText campoABuscar = new SelectInputText();

   public SelectInputText getCampoABuscar() {
      return campoABuscar;
   }
   public DefaultSelectionItems opcaoUfItems = new DefaultSelectionItems();
   public DefaultSelectedData ufSelecionado = new DefaultSelectedData();

   public DefaultSelectionItems getOpcaoUfItems() {
      return opcaoUfItems;
   }

   public void setOpcaoUfItems(DefaultSelectionItems opcaoUfItems) {
      this.opcaoUfItems = opcaoUfItems;
   }

   public DefaultSelectedData getUfSelecionado() {
      return ufSelecionado;
   }

   public void setUfSelecionado(DefaultSelectedData ufSelecionado) {
      this.ufSelecionado = ufSelecionado;
   }

   public void setCampoABuscar(SelectInputText sit) {
      this.campoABuscar = sit;
   }
   private HtmlCommandButton btnBuscar = new HtmlCommandButton();

   public HtmlCommandButton getBtnBuscar() {
      return btnBuscar;
   }

   public void setBtnBuscar(HtmlCommandButton hcb) {
      this.btnBuscar = hcb;
   }
   private HtmlCommandButton btnAlterar1 = new HtmlCommandButton();

   public HtmlCommandButton getBtnAlterar1() {
      return btnAlterar1;
   }

   public void setBtnAlterar1(HtmlCommandButton hcb) {
      this.btnAlterar1 = hcb;
   }
   private HtmlCommandButton btn_excluir = new HtmlCommandButton();

   public HtmlCommandButton getBtn_excluir() {
      return btn_excluir;
   }

   public void setBtn_excluir(HtmlCommandButton hcb) {
      this.btn_excluir = hcb;
   }
   private PanelTabSet painelBuscarFornecedor = new PanelTabSet();

   public PanelTabSet getPainelBuscarFornecedor() {
      return painelBuscarFornecedor;
   }

   public void setPainelBuscarFornecedor(PanelTabSet pts) {
      this.painelBuscarFornecedor = pts;
   }
   
   //Data Cadastro
   private SelectInputDateBean selectInputDate1Bean = new SelectInputDateBean();

   public SelectInputDateBean getSelectInputDate1Bean() {
      return selectInputDate1Bean;
   }

   public void setSelectInputDate1Bean(SelectInputDateBean sidb) {
      this.selectInputDate1Bean = sidb;
   }
   private HtmlInputText campoNomeCompleto = new HtmlInputText();

   public HtmlInputText getCampoNomeCompleto() {
      return campoNomeCompleto;
   }

   public void setCampoNomeCompleto(HtmlInputText hit) {
      this.campoNomeCompleto = hit;
   }
   private HtmlInputText campoCnpj = new HtmlInputText();

   public HtmlInputText getCampoCnpj() {
      return campoCnpj;
   }

   public void setCampoCnpj(HtmlInputText hit) {
      this.campoCnpj = hit;
   }
   private HtmlInputText campoRazaoSocial = new HtmlInputText();

   public HtmlInputText getCampoRazaoSocial() {
      return campoRazaoSocial;
   }

   public void setCampoRazaoSocial(HtmlInputText hit) {
      this.campoRazaoSocial = hit;
   }
   private HtmlInputText campoIncricaoEstadual = new HtmlInputText();

   public HtmlInputText getCampoIncricaoEstadual() {
      return campoIncricaoEstadual;
   }

   public void setCampoIncricaoEstadual(HtmlInputText hit) {
      this.campoIncricaoEstadual = hit;
   }
   private HtmlInputText campoPaginaWeb = new HtmlInputText();

   public HtmlInputText getCampoPaginaWeb() {
      return campoPaginaWeb;
   }

   public void setCampoPaginaWeb(HtmlInputText hit) {
      this.campoPaginaWeb = hit;
   }
   private HtmlInputText campoEmail = new HtmlInputText();

   public HtmlInputText getCampoEmail() {
      return campoEmail;
   }

   public void setCampoEmail(HtmlInputText hit) {
      this.campoEmail = hit;
   }
   private HtmlInputText campoTelefoneComercial = new HtmlInputText();

   public HtmlInputText getCampoTelefoneComercial() {
      return campoTelefoneComercial;
   }

   public void setCampoTelefoneComercial(HtmlInputText hit) {
      this.campoTelefoneComercial = hit;
   }
   private HtmlInputText campoFax = new HtmlInputText();

   public HtmlInputText getCampoFax() {
      return campoFax;
   }

   public void setCampoFax(HtmlInputText hit) {
      this.campoFax = hit;
   }
   private HtmlOutputLabel labelTelefone = new HtmlOutputLabel();

   public HtmlOutputLabel getLabelTelefone() {
      return labelTelefone;
   }

   public void setLabelTelefone(HtmlOutputLabel outputLabel1) {
      this.labelTelefone = outputLabel1;
   }
   private HtmlInputText campoCodCliente = new HtmlInputText();

   public HtmlInputText getCampoCodCliente() {
      return campoCodCliente;
   }

   public void setCampoCodCliente(HtmlInputText hit) {
      this.campoCodCliente = hit;
   }
   private HtmlInputText campoRua = new HtmlInputText();

   public HtmlInputText getCampoRua() {
      return campoRua;
   }

   public void setCampoRua(HtmlInputText hit) {
      this.campoRua = hit;
   }
   private HtmlInputText campoNumero = new HtmlInputText();

   public HtmlInputText getCampoNumero() {
      return campoNumero;
   }

   public void setCampoNumero(HtmlInputText hit) {
      this.campoNumero = hit;
   }
   private HtmlInputText campoComplemento = new HtmlInputText();

   private HtmlInputText campoRamoAtividade = new HtmlInputText();

   public HtmlInputText getCampoRamoAtividade() {
      return campoRamoAtividade;
   }

   public void setCampoRamoAtividade(HtmlInputText campoRamoAtividade) {
      this.campoRamoAtividade = campoRamoAtividade;
   }

   

   public HtmlInputText getCampoComplemento() {
      return campoComplemento;
   }

   public void setCampoComplemento(HtmlInputText hit) {
      this.campoComplemento = hit;
   }
   private HtmlInputText campoBairro = new HtmlInputText();

   public HtmlInputText getCampoBairro() {
      return campoBairro;
   }

   public void setCampoBairro(HtmlInputText hit) {
      this.campoBairro = hit;
   }
   private HtmlInputText campoCep = new HtmlInputText();

   public HtmlInputText getCampoCep() {
      return campoCep;
   }

   public void setCampoCep(HtmlInputText hit) {
      this.campoCep = hit;
   }
   private HtmlSelectOneMenu opcaoUf = new HtmlSelectOneMenu();

   public HtmlSelectOneMenu getOpcaoUf() {
      return opcaoUf;
   }

   public void setOpcaoUf(HtmlSelectOneMenu hsom) {
      this.opcaoUf = hsom;
   }
   private HtmlOutputLabel camposObrigatoriosAba02 = new HtmlOutputLabel();

   public HtmlOutputLabel getCamposObrigatoriosAba02() {
      return camposObrigatoriosAba02;
   }

   public void setCamposObrigatoriosAba02(HtmlOutputLabel hol) {
      this.camposObrigatoriosAba02 = hol;
   }
   private HtmlCommandLink tx_opCancelarAba02 = new HtmlCommandLink();

   public HtmlCommandLink getTx_opCancelarAba02() {
      return tx_opCancelarAba02;
   }

   public void setTx_opCancelarAba02(HtmlCommandLink hcl) {
      this.tx_opCancelarAba02 = hcl;
   }
   private HtmlCommandLink tx_opCancelarAba01 = new HtmlCommandLink();

   public HtmlCommandLink getTx_opCancelarAba01() {
      return tx_opCancelarAba01;
   }

   public void setTx_opCancelarAba01(HtmlCommandLink hcl) {
      this.tx_opCancelarAba01 = hcl;
   }
   private HtmlCommandLink link_proximoPassoAba01 = new HtmlCommandLink();

   public HtmlCommandLink getLink_proximoPassoAba01() {
      return link_proximoPassoAba01;
   }

   public void setLink_proximoPassoAba01(HtmlCommandLink hcl) {
      this.link_proximoPassoAba01 = hcl;
   }
   private PopupBean panelPopup1Bean = new PopupBean();

   public PopupBean getPanelPopup1Bean() {
      return panelPopup1Bean;
   }

   public void setPanelPopup1Bean(PopupBean pb) {
      this.panelPopup1Bean = pb;
   }
   private HtmlOutputText textoPopUp = new HtmlOutputText();

   public HtmlOutputText getTextoPopUp() {
      return textoPopUp;
   }

   public void setTextoPopUp(HtmlOutputText hot) {
      this.textoPopUp = hot;
   }
   private HtmlCommandButton btnPopUp1 = new HtmlCommandButton();

   public HtmlCommandButton getBtnPopUp1() {
      return btnPopUp1;
   }

   public void setBtnPopUp1(HtmlCommandButton hcb) {
      this.btnPopUp1 = hcb;
   }
   private HtmlCommandButton btnPopUp2 = new HtmlCommandButton();

   public HtmlCommandButton getBtnPopUp2() {
      return btnPopUp2;
   }

   public void setBtnPopUp2(HtmlCommandButton hcb) {
      this.btnPopUp2 = hcb;
   }
   private DefaultTableDataModel dataTable1Model = new DefaultTableDataModel();

   public DefaultTableDataModel getDataTable1Model() {
      return dataTable1Model;
   }

   public void setDataTable1Model(DefaultTableDataModel dtdm) {
      this.dataTable1Model = dtdm;
   }

  
   private HtmlDataTable tabelaResultadoBusca = new HtmlDataTable();

   public HtmlDataTable getTabelaResultadoBusca() {
      return tabelaResultadoBusca;
   }

   public void setTabelaResultadoBusca(HtmlDataTable hdt) {
      this.tabelaResultadoBusca = hdt;
   }
   private DefaultSelectedData selectOneMenu1Bean = new DefaultSelectedData();

   public DefaultSelectedData getSelectOneMenu1Bean() {
      return selectOneMenu1Bean;
   }

   public void setSelectOneMenu1Bean(DefaultSelectedData dsd) {
      this.selectOneMenu1Bean = dsd;
   }
   private HtmlSelectOneMenu tipoBusca = new HtmlSelectOneMenu();

   public HtmlSelectOneMenu getTipoBusca() {
      return tipoBusca;
   }

   public void setTipoBusca(HtmlSelectOneMenu hsom) {
      this.tipoBusca = hsom;
   }
   private DefaultSelectedData defaultSelectedData1 = new DefaultSelectedData();

   public DefaultSelectedData getDefaultSelectedData1() {
      return defaultSelectedData1;
   }

   public void setDefaultSelectedData1(DefaultSelectedData dsd) {
      this.defaultSelectedData1 = dsd;
   }
   private DefaultSelectionItems tipoBuscaDefaultItems = new DefaultSelectionItems();

   public DefaultSelectionItems getTipoBuscaDefaultItems() {
      return tipoBuscaDefaultItems;
   }

   public void setTipoBuscaDefaultItems(DefaultSelectionItems tipoBuscaDefaultItems) {
      this.tipoBuscaDefaultItems = tipoBuscaDefaultItems;
   }
   private DefaultSelectedData tipoBuscaSelecionado = new DefaultSelectedData();

   public DefaultSelectedData getTipoBuscaSelecionado() {
      return tipoBuscaSelecionado;
   }

   public void setTipoBuscaSelecionado(DefaultSelectedData tipoBuscaSelecionado) {
      this.tipoBuscaSelecionado = tipoBuscaSelecionado;
   }
   private DefaultSelectionItems cidades = new DefaultSelectionItems();
   private DefaultSelectedData cidadeSelecionada = new DefaultSelectedData();

   public DefaultSelectedData getCidadeSelecionada() {
      return cidadeSelecionada;
   }

   public void setCidadeSelecionada(DefaultSelectedData cidadeSelecionada) {
      this.cidadeSelecionada = cidadeSelecionada;
   }

   public DefaultSelectionItems getCidades() {
      return cidades;
   }

   public void setCidades(DefaultSelectionItems cidades) {
      this.cidades = cidades;
   }
   private HtmlSelectOneMenu campoCidade = new HtmlSelectOneMenu();

   public HtmlSelectOneMenu getCampoCidade() {
      return campoCidade;
   }

   public void setCampoCidade(HtmlSelectOneMenu hsom) {
      this.campoCidade = hsom;
   }
   private HtmlCommandButton btnConfirmaAlteracao = new HtmlCommandButton();

   public HtmlCommandButton getBtnConfirmaAlteracao() {
      return btnConfirmaAlteracao;
   }

   public void setBtnConfirmaAlteracao(HtmlCommandButton hcb) {
      this.btnConfirmaAlteracao = hcb;
   }
   private PanelPopup panelPopup1 = new PanelPopup();

   public PanelPopup getPanelPopup1() {
      return panelPopup1;
   }

   public void setPanelPopup1(PanelPopup pp) {
      this.panelPopup1 = pp;
   }
    private HtmlCommandButton tabelaResultadoBuscaFooterFirstButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaResultadoBuscaFooterFirstButton() {
        return tabelaResultadoBuscaFooterFirstButton;
    }

    public void setTabelaResultadoBuscaFooterFirstButton(HtmlCommandButton hcb) {
        this.tabelaResultadoBuscaFooterFirstButton = hcb;
    }
    private HtmlCommandButton tabelaResultadoBuscaFooterPreviousButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaResultadoBuscaFooterPreviousButton() {
        return tabelaResultadoBuscaFooterPreviousButton;
    }

    public void setTabelaResultadoBuscaFooterPreviousButton(HtmlCommandButton hcb) {
        this.tabelaResultadoBuscaFooterPreviousButton = hcb;
    }
    private HtmlCommandButton tabelaResultadoBuscaFooterNextButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaResultadoBuscaFooterNextButton() {
        return tabelaResultadoBuscaFooterNextButton;
    }

    public void setTabelaResultadoBuscaFooterNextButton(HtmlCommandButton hcb) {
        this.tabelaResultadoBuscaFooterNextButton = hcb;
    }
    private HtmlCommandButton tabelaResultadoBuscaFooterLastButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaResultadoBuscaFooterLastButton() {
        return tabelaResultadoBuscaFooterLastButton;
    }

    public void setTabelaResultadoBuscaFooterLastButton(HtmlCommandButton hcb) {
        this.tabelaResultadoBuscaFooterLastButton = hcb;
    }
    private SelectInputDateBean selectInputDateBean1 = new SelectInputDateBean();

    public SelectInputDateBean getSelectInputDateBean1() {
        return selectInputDateBean1;
    }

    public void setSelectInputDateBean1(SelectInputDateBean sidb) {
        this.selectInputDateBean1 = sidb;
    }
    private SelectInputDateBean selectInputDate2Bean = new SelectInputDateBean();

    public SelectInputDateBean getSelectInputDate2Bean() {
        return selectInputDate2Bean;
    }

    public void setSelectInputDate2Bean(SelectInputDateBean sidb) {
        this.selectInputDate2Bean = sidb;
    }
    private SelectInputDate dataCadastro = new SelectInputDate();

    public SelectInputDate getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(SelectInputDate sid) {
        this.dataCadastro = sid;
    }
   // </editor-fold>

   public BuscarFornecedor() {
   }

   @Override
   public void init() {
      super.init();
      campoNomeCompleto.setValue("Guilherme");
      this.inicializaCampos();

      // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
      // Initialize automatically managed components
      // *Note* - this logic should NOT be modified


      try {
         _init();
      } catch (Exception e) {
         log("BuscarFornecedor Initialization Failure", e);
         throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
      }

      FacesContext.getCurrentInstance().getExternalContext().getRequestMap().clear();
      inicializaCampos();
   // </editor-fold>
   }

   public void inicializaCampos() {
      this.controlaPaginacao(0);
      tipoBuscaDefaultItems.clear();
      tipoBuscaDefaultItems.add(new SelectItem(1, "Nome"));
      tipoBuscaDefaultItems.add(new SelectItem(2, "Razão Social"));
      tipoBuscaDefaultItems.add(new SelectItem(3, "Todos"));
      //limpa os campos
      this.limparCampos();
      //controla a pagincao
      this.setarCampos(true);
      panelPopup1.setRendered(false);
      btnConfirmaAlteracao.setRendered(false);
      dataTable1Model.setWrappedData(null);
      tipoBusca.setValue(1);

      //UF
      opcaoUfItems.clear();
      opcaoUfItems.add(new SelectItem(1, "AC"));
      opcaoUfItems.add(new SelectItem(2, "AL"));
      opcaoUfItems.add(new SelectItem(3, "AP"));
      opcaoUfItems.add(new SelectItem(4, "AM"));
      opcaoUfItems.add(new SelectItem(5, "BA"));
      opcaoUfItems.add(new SelectItem(6, "CE"));
      opcaoUfItems.add(new SelectItem(7, "DF"));
      opcaoUfItems.add(new SelectItem(8, "ES"));
      opcaoUfItems.add(new SelectItem(9, "GO"));
      opcaoUfItems.add(new SelectItem(10, "MA"));
      opcaoUfItems.add(new SelectItem(11, "MT"));
      opcaoUfItems.add(new SelectItem(12, "MS"));
      opcaoUfItems.add(new SelectItem(13, "MG"));
      opcaoUfItems.add(new SelectItem(14, "PA"));
      opcaoUfItems.add(new SelectItem(15, "PB"));
      opcaoUfItems.add(new SelectItem(16, "PR"));
      opcaoUfItems.add(new SelectItem(17, "PE"));
      opcaoUfItems.add(new SelectItem(18, "PI"));
      opcaoUfItems.add(new SelectItem(19, "RJ"));
      opcaoUfItems.add(new SelectItem(20, "RN"));
      opcaoUfItems.add(new SelectItem(21, "RS"));
      opcaoUfItems.add(new SelectItem(22, "RO"));
      opcaoUfItems.add(new SelectItem(23, "RR"));
      opcaoUfItems.add(new SelectItem(24, "SC"));
      opcaoUfItems.add(new SelectItem(25, "SP"));
      opcaoUfItems.add(new SelectItem(26, "SE"));
      opcaoUfItems.add(new SelectItem(27, "TO"));

      this.setarCampos(true);
      this.limparCampos();
   }

   @Override
   public void preprocess() {
   }

   @Override
   public void prerender() {
   }

   @Override
   public void destroy() {
   }

   protected SessionBean1 getview$SessionBean1() {
      return (SessionBean1) getBean("view$SessionBean1");
   }

   protected ApplicationBean1 getview$ApplicationBean1() {
      return (ApplicationBean1) getBean("view$ApplicationBean1");
   }

   protected RequestBean1 getview$RequestBean1() {
      return (RequestBean1) getBean("view$RequestBean1");
   }

   public String linkAction1_action() {
      
      this.fornecedor = (FornecedorVO) tabelaResultadoBusca.getRowData(); //pega o objeto da linha selecionada
      campoNomeCompleto.setValue(fornecedor.getNome());
      
      this.endereco = (EnderecoVO) fornecedor.getEndereco().iterator().next();
      campoCodCliente.setValue(fornecedor.getCodPessoa());
      campoBairro.setValue(endereco.getBairro());
      campoCep.setValue(endereco.getCep());
      campoCidade.setValue(endereco.getCidades().getCodCidade());
      this.inicializaCampoCidade(endereco.getCidades().getCodEstado().getCodEstado());
      campoCnpj.setValue(fornecedor.getCnpj());
      campoComplemento.setValue(endereco.getComplemento());
      campoEmail.setValue(fornecedor.getEmail());
      campoFax.setValue(fornecedor.getTelefoneDois());
      campoIncricaoEstadual.setValue(fornecedor.getInscEstadual());
      campoNomeCompleto.setValue(fornecedor.getNome());
      campoNumero.setValue(endereco.getNumero());
      campoPaginaWeb.setValue(fornecedor.getPaginaWeb());
      campoRazaoSocial.setValue(fornecedor.getRazaoSocial());
      campoRua.setValue(endereco.getRua());
      campoTelefoneComercial.setValue(fornecedor.getTelefoneUm());
      campoRamoAtividade.setValue(fornecedor.getRamoAtividade());

      painelBuscarFornecedor.setSelectedIndex(0);

      btnAlterar1.setRendered(true);
      btn_excluir.setRendered(true);
      btnConfirmaAlteracao.setRendered(false);
      setarCampos(true);

      ValidaCamposObrigatorios valida = new ValidaCamposObrigatorios();

      valida.verificaCampoVazio(campoNomeCompleto);
      valida.verificaCampoVazio(campoRamoAtividade);
      valida.verificaCampoVazio(campoIncricaoEstadual);
      valida.verificaCampoVazio(campoCnpj);
      valida.verificaCampoVazio(campoRua);
      valida.verificaCampoVazio(campoNumero);
      valida.verificaCampoVazio(campoBairro);
      valida.verificaCampoVazio(campoCep);
      return null;
   }

   public void setarCampos(boolean x) {
      campoBairro.setDisabled(x);
      campoCep.setDisabled(x);
      campoCidade.setDisabled(x);
      campoCnpj.setDisabled(x);
      campoComplemento.setDisabled(x);
      campoEmail.setDisabled(x);
      campoFax.setDisabled(x);
      campoIncricaoEstadual.setDisabled(x);
      campoNomeCompleto.setDisabled(x);
      campoNumero.setDisabled(x);
      campoPaginaWeb.setDisabled(x);
      campoRazaoSocial.setDisabled(x);
      campoRua.setDisabled(x);
      campoTelefoneComercial.setDisabled(x);
      opcaoUf.setDisabled(x);
      campoCodCliente.setDisabled(x);
      dataCadastro.setDisabled(x);
      campoRamoAtividade.setDisabled(x);
   }

   public String link_proximoPassoAba01_action() {
      valida.verificaCampoVazio(campoNomeCompleto);
      valida.verificaCampoVazio(campoRamoAtividade);
      valida.verificaCampoVazio(campoIncricaoEstadual);
      valida.verificaCampoVazio(campoCnpj);
      painelBuscarFornecedor.setSelectedIndex(1);
      return null;
   }

   public void limparCampos() {
      this.campoABuscar.resetValue();
      this.campoBairro.resetValue();
      this.campoCep.resetValue();
      this.campoCnpj.resetValue();
      this.campoCodCliente.resetValue();
      this.campoComplemento.resetValue();
      this.campoEmail.resetValue();
      this.campoFax.resetValue();
      this.campoIncricaoEstadual.resetValue();
      this.campoNomeCompleto.resetValue();
      this.campoNumero.resetValue();
      this.campoPaginaWeb.resetValue();
      this.campoRazaoSocial.resetValue();
      this.campoRua.resetValue();
      this.campoTelefoneComercial.resetValue();
      this.campoRamoAtividade.resetValue();
   }

   public void tx_opCancelarAba_action() {
      this.limparCampos();
   }

   public void controlaPopup(boolean renderedPopup, String textoPoup, boolean btn1Rendered, boolean btn2Rendered,
           String textobtn1, String textobtn2) {
      panelPopup1.setRendered(renderedPopup);
      textoPopUp.setValue(textoPoup);
      btnPopUp1.setValue(textobtn1);
      btnPopUp1.setRendered(btn1Rendered);
      btnPopUp2.setRendered(btn2Rendered);
      btnPopUp2.setValue(textobtn2);
   }

   public String btn_excluir_action() {
      controlaPopup(true, "Excluir o Fornecedor Selecionado", true, true, "Sim", "Não");
      controle = false;
      return null;
   }

   public String btnAlterar1_action() {
      this.setarCampos(false);
      btn_excluir.setRendered(false);
      btnAlterar1.setRendered(false);
      btnConfirmaAlteracao.setRendered(true);
      return null;
   }

   public String btnPopUp2_action() {
      panelPopup1.setRendered(false);
      return null;
   }

   @SuppressWarnings("static-access")
   public String btnBuscar_action() {
      SessionFacadeBuscarImplements facade_busca = new SessionFacadeBuscarImplements();
      switch (Integer.parseInt(tipoBusca.getValue().toString())) {
         case 1://busca por nome
            this.setListaDeFornecedores(facade_busca.buscaPorNome("nome", campoABuscar.getValue().toString(), FornecedorVO.class));
            dataTable1Model.setWrappedData(this.getListaDeFornecedores());
            break;
         case 3://busca todos
            this.setListaDeFornecedores(facade_busca.buscarTodos("codPessoa", FornecedorVO.class));
            dataTable1Model.setWrappedData(this.getListaDeFornecedores());
            break;
         case 2://busca por cnpj
            this.setListaDeFornecedores(facade_busca.buscaPorNome("razaoSocial", campoABuscar.getValue().toString(), FornecedorVO.class));
            dataTable1Model.setWrappedData(this.getListaDeFornecedores());
            break;
         default:
            break;
      }
       this.setPaginacaoBusca(new PaginacaoListaDezEmDez(this.getListaDeFornecedores()));
        //defini o estado dos botoes da tabela de busca
        this.controlaPaginacao(this.getListaDeFornecedores().size());
     
      return null;

   }

   public void campoABuscar_processValueChange(ValueChangeEvent vce) {
      if (Integer.parseInt(tipoBusca.getValue().toString()) == 1) {
         item = new SessionFacadeBuscarImplements().consultaSelectInputText(10, "nome", campoABuscar.getValue().toString(), FornecedorVO.class);
      } else if (Integer.parseInt(tipoBusca.getValue().toString()) == 2) {
         item = new SessionFacadeBuscarImplements().consultaSelectInputText(10, "razaoSocial", campoABuscar.getValue().toString(), FornecedorVO.class);
      }
   }

   public List<FornecedorVO> getListaDeFornecedores() {
      return listaDeFornecedores;
   }

   public void setListaDeFornecedores(List<FornecedorVO> listaDeFornecedores) {
      this.listaDeFornecedores = listaDeFornecedores;
   }

   public DefaultSelectionItems getItem() {
      return item;
   }

   public void setItem(DefaultSelectionItems item) {
      this.item = item;
   }

   public void inicializaCampoCidade(int codEstado) {
      this.setCidades(new DecoradorInicializaCombos().inicializaCampoCidade(codEstado));
   }

   public void opcaoUf_processValueChange(ValueChangeEvent vce) {
      inicializaCampoCidade(Integer.parseInt(opcaoUf.getValue().toString()));
   }

   public String btnPopUp1_action() throws Exception {
         if(controlaSaida==1){
          return "voltar";
      }
      if (controle == true) {
         try {
            Date dataCadastro2 = (Date) dataCadastro.getValue();
            SessionFacadeAlterarImplements facadeAlterar = new SessionFacadeAlterarImplements();

            if (facadeAlterar.alterarFornecedor(Integer.parseInt(campoCodCliente.getValue().toString()),
                    campoNomeCompleto.getValue().toString(),
                    campoTelefoneComercial.getValue().toString(),
                    campoFax.getValue().toString(),
                    campoEmail.getValue().toString(),
                    campoPaginaWeb.getValue().toString(),
                    "teste",
                    dataCadastro2,
                    campoRazaoSocial.getValue().toString(),
                    campoCnpj.getValue().toString(),
                    campoIncricaoEstadual.getValue().toString(),
                    campoRamoAtividade.getValue().toString(),
                    endereco.getCodEndereco(),
                    2,
                    campoRua.getValue().toString(),
                    campoBairro.getValue().toString(),
                    campoCep.getValue().toString(),
                    campoNumero.getValue().toString(),
                    campoComplemento.getValue().toString(),
                    Integer.parseInt(campoCidade.getValue().toString()))) {
               btn_excluir.setRendered(false);
               btnAlterar1.setRendered(false);
               btnConfirmaAlteracao.setRendered(false);
               controlaPopup(true, "Fornecedor alterado com sucesso", false, true, "", "OK");
               limparCampos();
               setarCampos(true);
               dataTable1Model.setWrappedData(null);


            }
         } catch (Exception e) {
            e.printStackTrace();
            controlaPopup(true, "Erro:" + e.getMessage() + "caused by: " + e.getStackTrace(), false, true, "", "OK");
            System.err.println("Erro:" + e.getMessage() + "caused by: " + e.getStackTrace());
         }
         return null;
      } else {
         SessionFacadeRemoverImplements facadeRemover = new SessionFacadeRemoverImplements();
         try {
            if (facadeRemover.removerFornecedor(fornecedor, endereco)) {
               btn_excluir.setRendered(false);
               btnAlterar1.setRendered(false);
               controlaPopup(true, "Fornecedor excluido com sucesso", false, true, "", "OK");
               btnPopUp1.setRendered(false);
               dataTable1Model.setWrappedData(null);
            }
         } catch (Exception e) {
            controlaPopup(true, "Erro:" + e.getMessage() + "caused by: " + e.getStackTrace(), false, true, "", "OK");
            System.err.println("Erro:" + e.getMessage() + "caused by: " + e.getStackTrace());
         }
         return null;
      }
   }

   public String commandLink1_action() {
      valida.verificaCampoVazio(campoRua);
      valida.verificaCampoVazio(campoNumero);
      valida.verificaCampoVazio(campoBairro);
      valida.verificaCampoVazio(campoCep);
      painelBuscarFornecedor.setSelectedIndex(0);
      return null;
   }

   public String btnConfirmaAlteracao_action() {
      valida.verificaCampoVazio(campoNomeCompleto);
      valida.verificaCampoVazio(campoRamoAtividade);
      valida.verificaCampoVazio(campoIncricaoEstadual);
      valida.verificaCampoVazio(campoCnpj);
      valida.verificaCampoVazio(campoRua);
      valida.verificaCampoVazio(campoNumero);
      valida.verificaCampoVazio(campoBairro);
      valida.verificaCampoVazio(campoCep);

      if(valida.verificaCampoVazio(campoNomeCompleto)||valida.verificaCampoVazio(campoRamoAtividade)||valida.verificaCampoVazio(campoIncricaoEstadual)||valida.verificaCampoVazio(campoCnpj)){
          painelBuscarFornecedor.setSelectedIndex(0);
          controlaPopup(true,"Campos Obrigatório!",false,true,"","Ok");
      }
      else if(valida.verificaCampoVazio(campoRua)||valida.verificaCampoVazio(campoNumero)||valida.verificaCampoVazio(campoBairro)||valida.verificaCampoVazio(campoCep)){
          painelBuscarFornecedor.setSelectedIndex(1);
          controlaPopup(true,"Campos Obrigatório!",false,true,"","Ok");
          }

      else{
      controlaPopup(true, "Deseja alterar o Fornecedor selecionado", true, true, "Sim", "Não");
      controle = true;
      }

      return null;

   }

   public String btn_voltar_action() {
        controlaSaida = 1;
        controlaPopup(true,"Deseja Sair ?",true,true,"Sim","Não");
        return null;
   }

   public String tx_opCancelarAba01_action() {
      limparCampos();
      setarCampos(true);
      btnAlterar1.setRendered(false);
      btn_excluir.setRendered(false);
      btnConfirmaAlteracao.setRendered(false);
      dataTable1Model.setWrappedData(null);
      return null;
   }

   public String tx_opCancelarAba02_action() {
      tx_opCancelarAba01_action();
      return null;
   }

   public void tipoBusca_processValueChange(ValueChangeEvent vce) {
      campoABuscar.setValue("");
      if (Integer.parseInt(tipoBusca.getValue().toString()) == 3) {
         campoABuscar.setReadonly(true);
      } else {
         campoABuscar.setReadonly(false);
      }
   }

     public String tabelaResultadoBusca_firstPageAction() {
        {
            dataTable1Model.setWrappedData(BuscarFornecedor.getPaginacaoBusca().firstPage());
            tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
            tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
            if (BuscarFornecedor.getPaginacaoBusca().getTotalPaginas() > 1) {
                tabelaResultadoBuscaFooterNextButton.setDisabled(false);
                tabelaResultadoBuscaFooterLastButton.setDisabled(false);
      }
      return null;
   }
  }

    public String tabelaResultadoBusca_previousPageAction() {
        {
           dataTable1Model.setWrappedData(BuscarFornecedor.getPaginacaoBusca().previousPage());
      if (BuscarFornecedor.getPaginacaoBusca().getNumeroDaPagina() == 1) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
      }
      if (BuscarFornecedor.getPaginacaoBusca().getTotalPaginas() > 1) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(false);
         tabelaResultadoBuscaFooterLastButton.setDisabled(false);
      }
      if (BuscarFornecedor.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }
    }

    public String tabelaResultadoBusca_nextPageAction() {
       dataTable1Model.setWrappedData(BuscarFornecedor.getPaginacaoBusca().nextPage());
      tabelaResultadoBuscaFooterPreviousButton.setDisabled(false);
      if (BuscarFornecedor.getPaginacaoBusca().getTotalPaginas() == BuscarFornecedor.getPaginacaoBusca().getNumeroDaPagina()) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterLastButton.setDisabled(true);
      }
      if (BuscarFornecedor.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

    public String tabelaResultadoBusca_lastPageAction() {
       dataTable1Model.setWrappedData(BuscarFornecedor.getPaginacaoBusca().lastPage());
      if (BuscarFornecedor.getPaginacaoBusca().getTotalPaginas() == BuscarFornecedor.getPaginacaoBusca().getNumeroDaPagina()) {
         tabelaResultadoBuscaFooterLastButton.setDisabled(true);
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(false);
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      if (BuscarFornecedor.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

    public void controlaPaginacao(int controlePaginas) {
      if (controlePaginas <= 10) {
         tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
         tabelaResultadoBuscaFooterNextButton.setDisabled(true);
         tabelaResultadoBuscaFooterLastButton.setDisabled(true);
      }
      if (controlePaginas > 10) {
         tabelaResultadoBuscaFooterNextButton.setDisabled(false);
         tabelaResultadoBuscaFooterLastButton.setDisabled(false);
         tabelaResultadoBuscaFooterFirstButton.setDisabled(true);
         tabelaResultadoBuscaFooterPreviousButton.setDisabled(true);
      }
   }
}
